www.gusucode.com > XbPhp开发框架 v1.4.5PHP源码程序 > XbPhp开发框架 v1.4.5/xbphp/xbphp/XbPhp/route/Autoloads.php

    <?php
/**
 * 自動加載核心文件
 * @author wave
 */
class XbphpAutoload {

	public static function init() {
		spl_autoload_register('self::autoload');
		self::AutoloadsStatic();
	}

	/**
	 * 自动加载核心文件(非静态类)
	 * @param string $class_name  文件名
	 * @author wave
	 */
	public static function autoload($class_name) {
		self::strposAutoload($class_name,'Controller',ROOT.DS.ROOT_PATH.DS.ROOT_CONTROLLER.DS);
		self::strposAutoload($class_name,'Model',ROOT.DS.ROOT_PATH.DS.ROOT_MODEL.DS);
		self::strposAutoload($class_name,'view',ROOT.DS.ROOT_PATH.DS.ROOT_VIEW.DS);
		self::strposAutoload($class_name,'Cache',ROOT.DS.ROOT_PATH.DS.CACHE.DS);
	}
	
	/**
	 * 截取文件名并判断加载文件是否存在
	 * @param string $class_name 文件名
	 * @param string $strpos_class_name 截取的文件名
	 * @param string $path 加载的路径
	 * @param string $extension 扩展名
	 * @author wave
	 */
	public static function strposAutoload($class_name,$strpos_class_name,$path,$extension = '.php') {
		if(strpos($class_name, $strpos_class_name) !== false) {
			if(file_exists($path.$class_name.'.php')) {
				require $path.$class_name.$extension;
			}
		}
	}


	/**
	 * 加载静态文件
	 * @author wave
	 */
	public static function AutoloadsStatic() {
		load('Error.php',ROOT_PATH.DS.ROOT_ERROR.DS);					//錯誤
		load('AppModel.php',APP_PATH.DS.ROOT_MODEL.DS);					//模型
		load('AppController.php',APP_PATH.DS.ROOT_CONTROLLER.DS);		//控制器
		load('Socket.php',ROOT_PATH.DS.VENDOR.DS); //socket加载	
		load('db.class.php',ROOT_PATH);  		

	}
}

XbphpAutoload::init();